Skip to content

feat(marketing): translate the homepage into five languages - #14192

Closed
bmdavis419 wants to merge 2 commits into
mainfrom
codex/homepage-translations
Closed

bmdavis419 wants to merge 2 commits into
mainfrom
codex/homepage-translations

Conversation

@bmdavis419

@bmdavis419 bmdavis419 commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

The homepage was English-only. It now supports Spanish, Brazilian Portuguese, German, Japanese, and Simplified Chinese through General Translation, with English retained at /.

  • Homepage.tsx uses GT's React provider, translation components, and hooks for homepage copy and testimonials. Astro renders committed catalogs to static HTML without React hydration or translation credentials at build/runtime.
  • [locale]/index.astro and lib/i18n.ts generate the five localized routes. Layout.astro adds a language selector, localized metadata/accessibility labels, canonical URLs, and hreflang links.
  • Download detection preserves translated platform labels. Mobile decoration stays clear of longer text. gt.config.json, catalogs, and development instructions support future translation updates.

Validation: marketing typecheck and production build passed; targeted lint passed; both homepage motion tests passed; GT validated all 67 entries. Checked all six built pages for catalog coverage, metadata, locale links, platform labels, and absence of hydration. Browser-checked language switching, download detection, desktop rendering, and all five mobile translations.

Before (desktop):

Before: English homepage

After (Spanish desktop):

After: Spanish homepage

After (Simplified Chinese mobile):

Simplified Chinese mobile homepage

Model: GPT-6 · Harness: Codex.

Summary by CodeRabbit

  • New Features
    • Added localized marketing homepages in German, Spanish, Brazilian Portuguese, Japanese, and Simplified Chinese, with language selection and translated navigation.
    • Download buttons now link to the matching release for supported desktop platforms.
    • Updated the homepage with responsive product highlights, endorsements, and download calls to action.
  • Documentation
    • Added guidance for translating marketing homepage content.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 1,000+ changed lines (additions + deletions). labels Sep 29, 2026
Comment on lines +1044 to +1046
.harness-grid {
grid-template-columns: 1fr 1fr;
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Medium styles/homepage.css:1044

At a 320px viewport, unbreakable .harness-tag values such as antigravity overflow their two-column cells and escape the grid. The cells have only about 58px for text after the icon, gap, padding, and gutters; constrain the tag text with ellipsis (or switch to a single-column layout) at narrow widths.

   .harness-grid {
     grid-template-columns: 1fr 1fr;
   }
+  .harness-tag {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
🚀 Reply "fix it for me" or copy this AI Prompt for your agent:
In file @apps/marketing/src/styles/homepage.css around lines 1044-1046:

At a 320px viewport, unbreakable `.harness-tag` values such as `antigravity` overflow their two-column cells and escape the grid. The cells have only about 58px for text after the icon, gap, padding, and gutters; constrain the tag text with ellipsis (or switch to a single-column layout) at narrow widths.

@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ The exact PR base did not have a successful artifact. Baseline uses the latest successful main measurement shown below.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.5 KiB 13.5 KiB −4 B (−0.0%) 15.1 KiB ✅
Codex Thread snapshot wire 7.0 KiB 7.1 KiB +22 B (+0.3%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.5 KiB 6.4 KiB −26 B (−0.4%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 56.3 KiB 56.2 KiB −44 B (−0.1%) 66.4 KiB ✅
Codex Live turn messages 10 9 −1 (−10.0%) 21 ✅
Claude Total thread wire 13.5 KiB 13.5 KiB 0 B (0.0%) 15.1 KiB ✅
Claude Thread snapshot wire 7.1 KiB 7.1 KiB +5 B (+0.1%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.5 KiB 6.4 KiB −5 B (−0.1%) 7.8 KiB ✅
Claude Live turn WebSocket decoded 57.0 KiB 57.0 KiB 0 B (0.0%) 66.4 KiB ✅
Claude Live turn messages 9 9 0 (0.0%) 21 ✅

Baseline: 408ff8a · PR result: 80065a9 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 114.0 KiB
  • Claude decoded thread snapshot: 114.7 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeapp

macroscopeapp Bot commented Sep 29, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR adds a substantial multilingual marketing feature with new routes, translation infrastructure, a React homepage migration, and shared layout changes affecting existing pages. An unresolved medium-severity responsive-layout issue also remains in the new homepage styling.

Not approved because:

  • 1 blocking correctness issue found at or above your repo's Minimum Blocking Severity

Adjust the Minimum Blocking Severity for this repo — including turning it Off — in Settings. You can add or adjust custom eligibility rules. Learn more.

@coderabbitai

coderabbitai Bot commented Sep 29, 2026

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: pingdotgg/t3code/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: d12a6476-984e-4326-878b-1c3d0e6489a4

📥 Commits

Reviewing files that changed from the base of the PR and between b21f3b7 and 80065a9.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (27)
  • apps/marketing/astro.config.mjs
  • apps/marketing/gt-lock.json
  • apps/marketing/gt.config.json
  • apps/marketing/package.json
  • apps/marketing/src/_gt/de.json
  • apps/marketing/src/_gt/es.json
  • apps/marketing/src/_gt/ja.json
  • apps/marketing/src/_gt/pt-BR.json
  • apps/marketing/src/_gt/zh-CN.json
  • apps/marketing/src/components/HomePage.astro
  • apps/marketing/src/components/Homepage.tsx
  • apps/marketing/src/i18n/de/site.json
  • apps/marketing/src/i18n/en/site.json
  • apps/marketing/src/i18n/es/site.json
  • apps/marketing/src/i18n/ja/site.json
  • apps/marketing/src/i18n/pt-BR/site.json
  • apps/marketing/src/i18n/zh-CN/site.json
  • apps/marketing/src/layouts/Layout.astro
  • apps/marketing/src/lib/homepage.ts
  • apps/marketing/src/lib/i18n.ts
  • apps/marketing/src/lib/tweets.ts
  • apps/marketing/src/pages/[locale]/index.astro
  • apps/marketing/src/pages/index.astro
  • apps/marketing/src/styles/homepage.css
  • apps/marketing/tsconfig.json
  • docs/operations/development.md
  • pnpm-workspace.yaml

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.


📝 Walkthrough

Walkthrough

The marketing site now renders a React-based homepage with English, Spanish, Brazilian Portuguese, German, Japanese, and Simplified Chinese content. It adds localized routes and site metadata, translation catalogs and tooling, and platform-aware download and motion initialization.

Changes

Localized Marketing Homepage

Layer / File(s) Summary
Translation setup and locale data
apps/marketing/astro.config.mjs, apps/marketing/package.json, apps/marketing/tsconfig.json, apps/marketing/gt.config.json, apps/marketing/gt-lock.json, apps/marketing/src/_gt/*, apps/marketing/src/i18n/*/site.json, apps/marketing/src/lib/i18n.ts, apps/marketing/src/lib/tweets.ts, docs/operations/development.md, pnpm-workspace.yaml
The app configures React and General Translation, adds five non-English homepage catalogs and six locales of site strings, and adds utilities and scripts for translation. The workspace excludes the gt version from its minimum release age check.
Homepage content and presentation
apps/marketing/src/components/Homepage.tsx, apps/marketing/src/styles/homepage.css
The React homepage adds its hero, endorsements, harness list, Git and open-source sections, and calls to action. The stylesheet adds responsive layouts, motion effects, and reduced-motion behavior.
Localized routes and site layout
apps/marketing/src/pages/[locale]/index.astro, apps/marketing/src/pages/index.astro, apps/marketing/src/components/HomePage.astro, apps/marketing/src/layouts/Layout.astro
The app adds static routes for non-English locales and renders the shared homepage component. The layout uses localized metadata, navigation, footer labels, and a locale menu.
Platform downloads and homepage motion
apps/marketing/src/lib/homepage.ts
The client selects supported release assets from the detected platform, updates download links and labels, and starts homepage motion when required elements are present.

Workspace Build Policy

Layer / File(s) Summary
Disable tree-sitter-python build scripts
pnpm-workspace.yaml
The workspace policy explicitly disallows build scripts for tree-sitter-python.

Priority: ➖ Normal

Estimated code review effort: 4 (Complex) | ~45 minutes

Change: Feature

Sequence Diagram(s)

sequenceDiagram
  participant LocaleIndex as [locale] index.astro
  participant HomePage as HomePage.astro
  participant I18n as i18n.ts
  participant Homepage as Homepage.tsx
  participant Layout as Layout.astro
  LocaleIndex->>HomePage: Pass locale prop
  HomePage->>I18n: Load locale strings and homepage translations
  I18n-->>HomePage: Return localized strings and translation catalog
  HomePage->>Homepage: Pass locale, translations, and screenshot
  HomePage->>Layout: Pass locale and localizedHome
Loading

Merge Risk: ⚪ Minimal · up to 80065

The homepage now renders statically in six languages, with localized navigation, metadata, and platform-aware download links. No concrete defects were identified, and the change appears ready to merge after normal CI checks.

Security Architecture Review

Security architecture risk: 🔵 Low · up to 80065

The new language routes use fixed locales and bundled translations rather than a new request-time translation service. A narrowly scoped exception to the dependency release-age policy merits review, but no exploitable issue was established.

Retained concerns

  • Low · security · inferred: The exact GT CLI version is exempted from the workspace release-age guard. Installations including development dependencies therefore lose that delay for this package, although the version is pinned and normal marketing builds do not invoke its CLI.
Security review details

Security Blast Radius

  • inferred — Public exposure expands to five prebuilt homepage paths, not to an identified request-time translation or credential-bearing endpoint.

Security Findings and Attack Paths

  • inferred — No translation-origin injection or new runtime translation-service attack path was established in the inspected route and renderer. This does not establish that every catalog value or production configuration was audited.

Trust Boundaries and Controls

  • observed — The browser-side download flow obtains asset URLs through the existing GitHub release lookup and places a matching URL into homepage links. The existing download page also consumes those release asset URLs.

Resilience and Maintainability Implications

  • inferred — The release lookup's session cache and the new homepage link update share a client-side data source. The inspected flow has default and error-fallback URLs, but a complete base-to-head assessment of stale or repeated lookup behavior was unavailable.

Hardening Proposals

  • proposed — Revisit the exact-version release-age exception once the translation CLI is eligible under the normal policy.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 12.50% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 5 files. (22 skipped: … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: adding homepage translations for five languages.
Description check ✅ Passed The description explains what changed, why it changed, implementation details, validation results, and UI changes with before-and-after screenshots. It does not include the template checklist or a sho…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 12.50% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 5 files. (22 skipped: 22 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

Copy link
Copy Markdown
Member

Note

This comment is posted by Julius' dot

Closing for missing prior scope approval. At 80065a9, this adds five localized public homepage routes, a language selector, translated metadata and a General Translation catalog/build workflow. That is a new homepage capability, and the PR and discussion contain no linked maintainer approval for its direction and scope.

The reported build/catalog checks and the supplied English, Spanish and Chinese screenshots are useful verification. They do not replace prior approval. Please agree with maintainers on the languages, homepage scope and translation workflow, link that explicit decision, and request reconsideration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants